package wow
{
	import mx.collections.ArrayCollection;
	
	import spark.components.Application;
	
	import wow.data.Spell;

	public class Datas extends Application
	{
		public static const TIMER_DEAL_ALLY:int = 1000;
		public static const TIMER_DEAL_ENEMY:int = 2000;
		public static const TIMER_ANNOUNCE:int = 5000;
		
		public static const CLASS_DK:int = 0;
		public static const SPEC_DK_Blood:String = "01";
		public static const SPEC_DK_Frost:String = "02";
		public static const SPEC_DK_Unholy:String = "03";
		
		public static const CLASS_Druid:int = 1;
		public static const CLASS_Hunter:int = 2;
		
		public static const CLASS_Mage:int = 3;
		public static const SPEC_Mage_Arcane:String = "31";
		public static const SPEC_Mage_Fire:String = "32";
		public static const SPEC_Mage_Frost:String = "33";
		
		public static const CLASS_Paladin:int = 4;
		
		public static const CLASS_Priest:int = 5;
		public static const SPEC_Priest_Disc:String = "51";
		public static const SPEC_Priest_Holy:String = "52";
		public static const SPEC_Priest_Shadow:String = "53";
		
		public static const CLASS_Rogue:int = 6;
		public static const SPEC_Rogue_Assa:String = "61";
		public static const SPEC_Rogue_Combat:String = "62";
		public static const SPEC_Rogue_Subtlety:String = "63";
		
		public static const CLASS_Shaman:int = 7;
		
		public static const CLASS_Warlock:int = 8;
		public static const SPEC_Warlock_Affli:String = "81";
		public static const SPEC_Warlock_Demono:String = "82";
		public static const SPEC_Warlock_Destro:String = "83";
		
		public static const CLASS_Warrior:int = 9;
		public static const CLASS_Enemy:int = 10;
		
		public static const TARGET_NO_TARGET:int = 0;
		public static const TARGET_SELF:int = 10;
		public static const TARGET_ALL_ALLIES:int = 20;
		public static const TARGET_ALL_ENEMIES:int = 30;
		public static const TARGET_ENEMY:int = 40;
		public static const TARGET_ALLY:int = 50;
		public static const BUFF_PERMANENT:int = 60;
		public static const BUFF_DURATION:int = 70;
		public static const BUFF_STACK:int = 80;
		
		// Misc Spells
		public static const SPELL_PASS:int = 3000;
		
		// Morchok Spells
		public static const SPELL_ATTACK_MORCHOK:int = 1000;
		public static const SPELL_ATTACK_KOHCROM:int = 1001;
		public static const SPELL_STOMP:int = 1002;					// AoE
		public static const SPELL_BLACKBLOOD:int = 1003;	// AoE + écart
		
		
		// DK Blood Spells
		public static const SPELL_HEARTSTRIKE:int = 0; 		// Base Attack
		public static const SPELL_BONESHIELD:int = 1; 		// Protection CD
		public static const SPELL_DEATHSTRIKE:int = 2; 		// Base Attack + Heal
		public static const SPELL_DARKCOMMAND:int = 3; 		// Taunt
		public static const SPELL_DEATHANDDECAY:int = 4;	// AoE Aggro
		public static const SPELL_BLOODBOIL:int = 5; 		// AoE
		public static const SPELL_ANTIMAGICSHELL:int = 6;	// Protection CD
		
		// DK Frost Spells
		public static const SPELL_FROSTSTRIKE:int = 30;		// Base Attack
		public static const SPELL_OBLITERATE:int = 31;		// Strong Attack
		public static const SPELL_HOWLINGBLAST:int = 32;	// AoE
		public static const SPELL_PILLAROFFROST:int = 33;	// Damage CD
		// DK Frost Effects
		public static const SPELL_BUFF_KILLINGMACHINE:int = 50;	// Proc
		public static const SPELL_FROSTFEVER:int = 51;			// DoT from Frost Strike and Plague Strike
		
		// DK Unholy Spells
		public static const SPELL_PLAGUESTRIKE:int = 60;		// Base Attack + DoTs
		public static const SPELL_DEATHCOIL:int = 61;			// Strong Attack
		public static const SPELL_SCOURGESTRIKE:int = 62;		// Strong Attack
		public static const SPELL_UNHOLYFRENZY:int = 64;		// Damage CD
		public static const SPELL_ANTIMAGICZONE:int = 65;		// AoE Protection CD
		// DK Unholy Effects
		public static const SPELL_BLOODPLAGUE:int = 80;			// DoT from Plague Strike
		public static const SPELL_SUDDENDOOM:int = 81;			// Proc
		
		// Mage Arcane Spells
		public static const SPELL_ARCANEBLAST:int = 300;		// Basic Attack gives AC
		public static const SPELL_ARCANEBARRAGE:int = 301;		// Strong Attack with AC
		public static const SPELL_ARCANEMISSILES:int = 303;		// Strong Attack gives AC
		public static const SPELL_ARCANEEXPLOSION:int = 304;	// AoE
		public static const SPELL_ARCANEPOWER:int = 306;		// Damage CD
		public static const SPELL_NETHERTEMPEST:int = 305;		// Bouncing Attack
		public static const SPELL_TIMEWARP:int = 307;			// Damage CD
		// Mage Arcane Effects
		public static const SPELL_BUFF_ARCANECHARGE:int = 320;	// Arcane Charge spell_arcane_arcane01
		
		// Mage Fire Spells
		public static const SPELL_FIREBALL:int = 330;			// Basic Attack, 50% chance to make Ignite, chance to give Hot Streak
		public static const SPELL_LIVINGBOMB:int = 331;			// DoT
		public static const SPELL_PYROBLAST:int = 332;			// Strong Attack
		public static const SPELL_FLAMESTRIKE:int = 333;		// AoE
		public static const SPELL_334:int = 334;		// 
		public static const SPELL_INFERNOBLAST:int = 335;		// Small Attack + AoE spread Ignite
		public static const SPELL_DRAGONSBREATH:int = 336;		// AoE Stun
		public static const SPELL_COMBUSTION:int = 337;			// Damage CD
		
		// Mage Frost Spells
		public static const SPELL_FROSTBOLT:int = 360;			// Basic Attack
		public static const SPELL_ICELANCE:int = 361;			// Attack
		public static const SPELL_FROSTFIREBOLT:int = 362;		// Strong Attack
		public static const SPELL_BLIZZARD:int = 363;			// AoE
		public static const SPELL_FROZENORB:int = 364;			// Damage CD
		public static const SPELL_FROSTBOMB:int = 365;			// Damage CD + Proc
		public static const SPELL_ICYVEINS:int = 366;			// Damage CD
		public static const SPELL_WATERELEMENTAL:int = 367;		// Damage CD
		// Mage Frost Effects
		public static const SPELL_BUFF_FINGEROFFROST:int = 380;	// Proc FoF
		public static const SPELL_BUFF_BRAINFREEZE:int = 381;	// Proc BF
		
		// Priest Disc Spells
		public static const SPELL_PENANCE:int = 500;			// Heal
		public static const SPELL_POWERSHIELD:int = 501;		// Absorb
		public static const SPELL_PRAYEROFHEALING:int = 502;	// AoE Heal
		public static const SPELL_DISPELMAGIC:int = 503;		// Dispel Magic
		public static const SPELL_ARCHANGEL:int = 504;			// Heal CD
		public static const SPELL_PAINSUP:int = 505;			// Protection CD
		public static const SPELL_:int = 506; // ??
		public static const SPELL_POWERBARRIER:int = 507;		// AoE Protection CD
		
		// Priest Holy Spells
		public static const SPELL_HEAL:int = 530;				// Heal
		public static const SPELL_HOLYNOVA:int = 531;			// AoE Heal
		public static const SPELL_GREATERHEAL:int = 532;		// Greater Heal
		public static const SPELL_RENEW:int = 533;				// Renew
		public static const SPELL_A:int = 534; // ??
		public static const SPELL_BINDINGHEAL:int = 535;		// Double Heal
		public static const SPELL_GUARDIANSPIRIT:int = 536;		// Heal CD
		public static const SPELL_DIVINEHYMN:int = 537;			// AoE Heal CD
		
		// Priest Shadow Spells
		public static const SPELL_MINDBLAST:int = 560;			// Basic Attack
		public static const SPELL_SHADOWPAIN:int = 561;			// DoT
		public static const SPELL_PSYCHICSCREAM:int = 562;		// CC
		public static const SPELL_MINDSEAR:int = 564;			// AoE
		public static const SPELL_DEVOURINGPLAGUE:int = 563;	// DoT
		public static const SPELL_MINDSPIKE:int = 565;			// Strong Attack
		public static const SPELL_SHADOWDEATH:int = 566;		// Execute
		public static const SPELL_SHADOWFIEND:int = 567;		// Damage CD
		
		// Rogue Assassination Spells
		public static const SPELL_MUTILATE:int = 600;			// Basic Attack
		public static const SPELL_ENVENOM:int = 601;			// Strong Attack with CB
		public static const SPELL_VENDETTA:int = 607;			// Damage CD
		// Rogue Assassination Effects
		
		// Rogue Combat Spells
		public static const SPELL_SINISTERSTRIKE:int = 630;		// Basic Attack
		public static const SPELL_EVISCERATE:int = 631;			// Strong Attack with CB
		public static const SPELL_SLASHANDDICE:int = 632;		// Buff with CB - Increases CB generation
		public static const SPELL_KILLINGSPREE:int = 633;		// Strong Attack with CD
		public static const SPELL_ADRENALINERUSH:int = 634;		// Damage CD
		public static const SPELL_635:int = 635;			// ???
		public static const SPELL_BLADEFLURRY:int = 636;		// AoE
		public static const SPELL_637:int = 637;			// ???
		// Rogue Combat Effects
		public static const SPELL_BUFF_COMBOPOINT:int = 620;	// Combo Points
		
		// Warlock Affliction Spells
		public static const SPELL_MALEFICGRASP:int = 800;		// Basic Attack
		public static const SPELL_UNSTABLEAFFLICTION:int = 801; // DoT
		public static const SPELL_FEAR:int = 802;				// CC
		public static const SPELL_CORRUPTION:int = 803;			// DoT
		public static const SPELL_HAUNT:int = 804;				// Strong Attack + Debuff
		public static const SPELL_AGONY:int = 805;				// DoT
		public static const SPELL_DEMONSOUL:int = 806;			// Damage CD
		public static const SPELL_SOULBURNCORRUPTION:int = 807; // AoE + AoE DoT
		
		// Warlock Affliction Effects
		
		// Warlock Demonology Spells
		public static const SPELL_SHADOWBOLT:int = 830;			// Basic Attack
		public static const SPELL_DOOM:int = 831;				// DoT
		public static const SPELL_SHADOWFLAME:int = 832;		// AoE DoT
		public static const SPELL_METAMORPHOSIS:int = 833;		// Damage CD
		public static const SPELL_HELLFIRE:int = 834;			// AoE
		public static const SPELL_SOULFIRE:int = 835;			// Strong Attack, Execute
		public static const SPELL_836:int = 836;			// ???
		public static const SPELL_DOOMGUARD:int = 837;			// Damage CD (DoT)
		// Warlock Demonology Effects
		
		// Warlock Destruction Spells
		public static const SPELL_INCINERATE:int = 860;			// Basic Attack
		public static const SPELL_IMMOLATE:int = 861;			// DOT
		public static const SPELL_CONFLAGRATE:int = 862;		// Strong Attack + Buff
		public static const SPELL_RAINOFFIRE:int = 863;			// AoE
		public static const SPELL_CHAOSBOLT:int = 864;			// Strong Attack with Ember
		public static const SPELL_SHADOWFURY:int = 865;			// AoE Stun
		public static const SPELL_SHADOWBURN:int = 866;			// Execute
		public static const SPELL_INFERNAL:int = 867;			// Damage CD (DoT)
		// Warlock Destruction Effects
		public static const SPELL_BUFF_BACKDRAFT:int = 880;		// Proc from Conflagrate
		public static const SPELL_BUFF_EMBER:int = 881;			// Ember
		
		[Bindable]
		public static var CLASSES:ArrayCollection = new ArrayCollection(new Array(
			{name:"DK",color:0xB9121B,scolor:"0xB9121B"},
			{name:"Druid",color:0xDE6A1C,scolor:"0xDE6A1C"},
			{name:"Hunter",color:0x677E52,scolor:"0x677E52"},
			{name:"Mage",color:0x5EB6DD,scolor:"0x5EB6DD"},
			{name:"Paladin",color:0xF5A6BF,scolor:"0xF5A6BF"},
			{name:"Priest",color:0xFCFAE1,scolor:"0xFCFAE1"},
			{name:"Rogue",color:0xE8CC06,scolor:"0xE8CC06"},
			{name:"Shaman",color:0x234CA5,scolor:"0x234CA5"},
			{name:"Warlock",color:0x853894,scolor:"0x853894"},
			{name:"Warrior",color:0x8C5935,scolor:"0x8C5935"},
			{name:"Enemy",color:0x000000,scolor:"0xA2B5BF"}
		));
		
		public static function getSpells():Array
		{
			var ALLSPELLS:Array = new Array();
			
			ALLSPELLS[SPELL_PASS] = new Spell(SPELL_PASS,"Pass","spell_nature_sleep","Do nothing.",0,0,TARGET_NO_TARGET,0);
			
			ALLSPELLS[SPELL_ATTACK_MORCHOK] = new Spell(SPELL_ATTACK_MORCHOK,"Melee","ability_warrior_titansgrip","Deals "+VALUE_ATTACK_MORCHOK+" damage to the target.",0,0,TARGET_ENEMY,0);
			ALLSPELLS[SPELL_ATTACK_KOHCROM] = new Spell(SPELL_ATTACK_KOHCROM,"Melee","ability_warrior_titansgrip","Deals "+VALUE_ATTACK_KOHCROM+" damage to the target.",0,0,TARGET_ENEMY,0);
			ALLSPELLS[SPELL_STOMP] = new Spell(SPELL_STOMP,"Stomp","inv_misc_apexis_crystal","Deals "+VALUE_STOMP+" damage to all enemies.",0,0,TARGET_ALL_ENEMIES,0);
			ALLSPELLS[SPELL_BLACKBLOOD] = new Spell(SPELL_BLACKBLOOD,"Black Blood of the Earth","achievement_dungeon_the-stonecore_ozruk","Deals "+VALUE_BLACKBLOOD+" damage to all enemies every turn during 3 turns.",0,3,TARGET_ALL_ENEMIES,BUFF_DURATION);
			// DK Blood Spells
			ALLSPELLS[SPELL_HEARTSTRIKE] = new Spell(SPELL_HEARTSTRIKE,"Heart Strike","inv_weapon_shortblade_40","Deals "+VALUE_HEARTSTRIKE+" damage to the target.",0,0,TARGET_ENEMY,0);
			ALLSPELLS[SPELL_BONESHIELD] = new Spell(SPELL_BONESHIELD,"Bone Shield","ability_deathknight_boneshield","Surrounds you with a barrier of bones, which reduces the damage of the "+DURATION_BONESHIELD+" next attacks on you by "+VALUE_BONESHIELD+"%.",10,DURATION_BONESHIELD,TARGET_SELF,BUFF_STACK);
			ALLSPELLS[SPELL_DEATHSTRIKE] = new Spell(SPELL_DEATHSTRIKE,"Death Strike","spell_deathknight_butcher2","Deals "+VALUE_DEATHSTRIKE+" damage to the target and heals you for "+VALUE_DEATHSTRIKE_HEAL+" hp.",3,0,TARGET_ENEMY,0);
			ALLSPELLS[SPELL_DARKCOMMAND] = new Spell(SPELL_DARKCOMMAND,"Dark Command","spell_nature_shamanrage","Commands the target to attack you.",5,0,TARGET_ENEMY,0);
			ALLSPELLS[SPELL_DEATHANDDECAY] = new Spell(SPELL_DEATHANDDECAY,"Death and Decay","spell_shadow_deathanddecay","Deals "+VALUE_DEATHANDDECAY+" damage to all enemies every turn during "+DURATION_DEATHANDDECAY+" turns. Generates high threat.",4,DURATION_DEATHANDDECAY,TARGET_ALL_ENEMIES,BUFF_DURATION);
			ALLSPELLS[SPELL_BLOODBOIL] = new Spell(SPELL_BLOODBOIL,"Blood Boil","spell_deathknight_bloodboil","Deals "+VALUE_BLOODBOIL+" damage to all enemies.",4,0,TARGET_ALL_ENEMIES,0);
			// DK Blood Effects
			
			// DK Frost Spells
			ALLSPELLS[SPELL_FROSTSTRIKE] = new Spell(SPELL_FROSTSTRIKE,"Frost Strike","spell_deathknight_empowerruneblade2","Deals 20 damage to the target. 50% chance to gain the Killing Machine buff.",0,0,TARGET_ENEMY,0);
			ALLSPELLS[SPELL_OBLITERATE] = new Spell(SPELL_OBLITERATE,"Obliterate","spell_deathknight_classicon","Deals 35 damage to the target, 70 with Killing Machine buff.",0,0,TARGET_ENEMY,0);
			ALLSPELLS[SPELL_HOWLINGBLAST] = new Spell(SPELL_HOWLINGBLAST,"Howling Blast","spell_frost_arcticwinds","Deals 15 damage to all enemies.",0,0,TARGET_ALL_ENEMIES,0);
			ALLSPELLS[SPELL_PILLAROFFROST] = new Spell(SPELL_PILLAROFFROST,"Pillar of Frost","ability_deathknight_pillaroffrost","Increases damage dealt by 20% for 5 turns.",15,5,TARGET_SELF,BUFF_DURATION);
			// DK Frost Effects
			ALLSPELLS[SPELL_BUFF_KILLINGMACHINE] = new Spell(SPELL_BUFF_KILLINGMACHINE,"Killing Machine","inv_sword_122","Doubles your next Obliterate's damages.",0,0,0,BUFF_PERMANENT);
			ALLSPELLS[SPELL_FROSTFEVER] = new Spell(SPELL_FROSTFEVER,"Frost Fever","spell_deathknight_frostfever","Deals 6 damages every turn during 8 turns.",0,8,TARGET_ENEMY,BUFF_DURATION);
			
			// DK Unholy Spells
			ALLSPELLS[SPELL_PLAGUESTRIKE] = new Spell(SPELL_PLAGUESTRIKE,"Plague Strike","spell_deathknight_empowerruneblade","Deals 15 damage and infects the target with Blood Plague. 30% chance to give the Sudden Doom buff.",0,0,TARGET_ENEMY,0);
			ALLSPELLS[SPELL_SCOURGESTRIKE] = new Spell(SPELL_SCOURGESTRIKE,"Scourge Strike","spell_deathknight_scourgestrike","Deals 15 damage, plus 10 by disease on the target (Blood Plague, ).",0,0,TARGET_ENEMY,0);
			ALLSPELLS[SPELL_DEATHCOIL] = new Spell(SPELL_DEATHCOIL,"Death Coil","spell_shadow_deathcoil","Deals 20 damage to the target.",0,0,TARGET_ENEMY,0);
			// ??
			ALLSPELLS[SPELL_UNHOLYFRENZY] = new Spell(SPELL_UNHOLYFRENZY,"Unholy Frenzy","spell_shadow_unholyfrenzy","Increasess damage dealt by 40% during 3 turns.",25,3,TARGET_ALLY,BUFF_DURATION);
			ALLSPELLS[SPELL_ANTIMAGICZONE] = new Spell(SPELL_ANTIMAGICZONE,"Anti-Magic Zone","spell_deathknight_antimagiczone","Reduces magic damage received by all allies by 20% during 2 turns.",25,2,TARGET_ALL_ALLIES,BUFF_DURATION);
			// DK Unholy Effects
			ALLSPELLS[SPELL_BLOODPLAGUE] = new Spell(SPELL_SCOURGESTRIKE,"Blood Plague","spell_deathknight_bloodplague","Deals 5 damages every turn during 10 turns.",0,10,TARGET_ENEMY,BUFF_DURATION);
			ALLSPELLS[SPELL_SUDDENDOOM] = new Spell(SPELL_SUDDENDOOM,"Sudden Doom","spell_shadow_painspike","Your next Death Coil deals triple damage.",0,0,TARGET_SELF,BUFF_PERMANENT);
			
			// Mage Frost Spells
			ALLSPELLS[SPELL_FROSTBOLT] = new Spell(SPELL_FROSTBOLT,"Frostbolt","spell_frost_frostbolt02","Deals "+VALUE_FROSTBOLT+" damage. "+CHANCE_FROSTBOLT_FINGEROFFROST*100+"% chance to gain a Finger of Frost (FoF) charge, "+CHANCE_FROSTBOLT_BRAINFREEZE*100+"% chance to gain Brain Freeze (BF).",0,0,TARGET_ENEMY,0);
			ALLSPELLS[SPELL_ICELANCE] = new Spell(SPELL_ICELANCE,"Ice Lance","spell_frost_frostblast","Deals "+VALUE_ICELANCE+" damage to the target, "+VALUE_ICELANCE_FOF+" with a Finger of Frost charge.",0,0,TARGET_ENEMY,0);
			ALLSPELLS[SPELL_FROSTFIREBOLT] = new Spell(SPELL_FROSTFIREBOLT,"Frostfire Bolt","ability_mage_frostfirebolt","Deals "+VALUE_FROSTFIREBOLT+" damage to the target, "+VALUE_FROSTFIREBOLT_BF+" with BF, "+VALUE_FROSTFIREBOLT_BF_FOF+" with BF+FoF.",0,0,TARGET_ENEMY,0);
			ALLSPELLS[SPELL_BLIZZARD] = new Spell(SPELL_BLIZZARD,"Blizzard","spell_frost_icestorm","Deals "+VALUE_BLIZZARD+" damage to all enemies. Each hit has "+CHANCE_BLIZZARD_FINGEROFFROST*100+"% chance to proc Finger of Frost.",0,0,TARGET_ALL_ENEMIES,0);
			ALLSPELLS[SPELL_FROZENORB] = new Spell(SPELL_FROZENORB,"Frozen Orb","spell_firefrost-orb","Deals "+VALUE_FROZENORB+" damage to all enemies every turn during "+DURATION_FROZENORB+" turns. Each hit has "+CHANCE_FROZENORB_FINGEROFFROST*100+"% chance of giving a Finger of Frost charge.",10,DURATION_FROZENORB,TARGET_ALL_ENEMIES,BUFF_DURATION);
			ALLSPELLS[SPELL_FROSTBOMB] = new Spell(SPELL_FROSTBOMB,"Frost Bomb","spell_mage_frostbomb","Deals "+VALUE_FROSTBOMB+" damage to the target every turn during "+DURATION_FROSTBOMB+" turns. 100% chance to proc Brain Freeze on final hit.",8,DURATION_FROSTBOMB,TARGET_ENEMY,BUFF_DURATION);
			ALLSPELLS[SPELL_ICYVEINS] = new Spell(SPELL_ICYVEINS,"Icy Veins","spell_frost_coldhearted","Increases damage by "+VALUE_ICYVEINS+"% for "+DURATION_ICYVEINS+" turns.",25,DURATION_ICYVEINS,TARGET_SELF,BUFF_DURATION);
			ALLSPELLS[SPELL_WATERELEMENTAL] = new Spell(SPELL_WATERELEMENTAL,"Water Elemental","spell_frost_summonwaterelemental_2","Summons a water elemental that attacks the target for "+VALUE_WATERELEMENTAL+" damage by turn during "+DURATION_WATERELEMENTAL+" turns.",30,DURATION_WATERELEMENTAL,TARGET_ENEMY,BUFF_DURATION);
			// Mage Frost Effects
			ALLSPELLS[SPELL_BUFF_FINGEROFFROST] = new Spell(SPELL_BUFF_FINGEROFFROST,"Finger of Frost","ability_mage_wintersgrasp","Increases Ice Lance and Frostfire Bolt damage when used.",0,0,TARGET_SELF,BUFF_STACK);
			ALLSPELLS[SPELL_BUFF_BRAINFREEZE] = new Spell(SPELL_BUFF_BRAINFREEZE,"Brain Freeze","ability_mage_brainfreeze","Increases Frostfire Bolt damage when used.",0,0,TARGET_SELF,0);
			
				// Priest Disc Spells
			ALLSPELLS[SPELL_PENANCE] = new Spell(SPELL_PENANCE,"Penance","spell_holy_penance","Heal the target for "+VALUE_PENANCE+".",0,0,TARGET_ALLY,0);
			ALLSPELLS[SPELL_POWERSHIELD] = new Spell(SPELL_POWERSHIELD,"Power Word: Shield","spell_holy_powerwordshield","Puts a shield on the target, absorbing the next "+VALUE_POWERSHIELD+" damage received.",0,30,TARGET_ALLY,BUFF_STACK);
			ALLSPELLS[SPELL_PRAYEROFHEALING] = new Spell(SPELL_PRAYEROFHEALING,"Prayer of Healing","spell_holy_prayerofhealing02","Heal all allies for "+VALUE_PRAYEROFHEALING+".",0,0,TARGET_ALL_ALLIES,0);
			ALLSPELLS[SPELL_DISPELMAGIC] = new Spell(SPELL_DISPELMAGIC,"Dispel Magic","spell_nature_nullifydisease","Dispels a harmful magic effect on the targetted ally.",0,0,TARGET_ALLY,0);
			ALLSPELLS[SPELL_ARCHANGEL] = new Spell(SPELL_ARCHANGEL,"Archangel","ability_priest_archangel","Increases healing done by "+VALUE_ARCHANGEL+"% during "+DURATION_ARCHANGEL+" turns.",20,DURATION_ARCHANGEL,TARGET_SELF,BUFF_DURATION);
			ALLSPELLS[SPELL_PAINSUP] = new Spell(SPELL_PAINSUP,"Pain Suppression","spell_holy_painsupression","Reduces damage on the target by "+VALUE_PAINSUP+"% during "+DURATION_PAINSUP+" turns.",20,DURATION_PAINSUP,TARGET_ALLY,BUFF_DURATION);
			// ALLSPELLS[] = new Spell(,"","","",,,,);
			ALLSPELLS[SPELL_POWERBARRIER] = new Spell(SPELL_POWERBARRIER,"Power Word: Barrier","spell_holy_powerwordbarrier","Reduces damage received by allies by "+VALUE_POWERBARRIER+"% during "+DURATION_POWERBARRIER+" turns.",25,DURATION_POWERBARRIER,TARGET_ALL_ALLIES,BUFF_DURATION);
			
			// Rogue Combat Spells
			ALLSPELLS[SPELL_SINISTERSTRIKE] = new Spell(SPELL_SINISTERSTRIKE,"Sinister Strike","spell_shadow_ritualofsacrifice","Deals "+VALUE_SINISTERSTRIKE+" damages to the target. Gives one Combo point.",0,0,TARGET_ENEMY,0);
			ALLSPELLS[SPELL_EVISCERATE] = new Spell(SPELL_EVISCERATE,"Eviscerate","ability_rogue_eviscerate","Deals "+VALUE_EVISCERATE+" damages per combo point.",0,0,TARGET_ENEMY,0);
			// Rogue Combat Effects
			ALLSPELLS[SPELL_BUFF_COMBOPOINT] = new Spell(SPELL_BUFF_COMBOPOINT,"Combo Points","trade_engineering","Combo Points are needed for finishers.",0,0,0,BUFF_STACK);
			
			// Affliction Warlock Spells
			ALLSPELLS[SPELL_MALEFICGRASP] = new Spell(SPELL_MALEFICGRASP,"Malefic Grasp","ability_warlock_everlastingaffliction","Deals "+VALUE_MALEFICGRASP+" damages plus "+VALUE_MALEFICGRASPBONUS+" for each DoT on the target.",0,0,TARGET_ENEMY,0);
			ALLSPELLS[SPELL_UNSTABLEAFFLICTION] = new Spell(SPELL_UNSTABLEAFFLICTION,"Unstable Affliction","spell_shadow_unstableaffliction_3","Deals "+VALUE_UNSTABLEAFFLICTION+" damages every turn during "+DURATION_UNSTABLEAFFLICTION+" turns.",0,DURATION_UNSTABLEAFFLICTION,TARGET_ENEMY,BUFF_DURATION);
			ALLSPELLS[SPELL_FEAR] = new Spell(SPELL_FEAR,"Fear","spell_shadow_possession","The targetted weak enemy flees during "+DURATION_FEAR+" turns.",0,DURATION_FEAR,TARGET_ENEMY,BUFF_DURATION);
			ALLSPELLS[SPELL_AGONY] = new Spell(SPELL_AGONY,"Agony","spell_shadow_curseofsargeras","Deals "+VALUE_AGONY+" damages every turn during "+DURATION_AGONY+" turns.",0,DURATION_AGONY,TARGET_ENEMY,BUFF_DURATION);
			// Affliction Warlock Effects
			
			// Destruction Warlock Spells
			ALLSPELLS[SPELL_INCINERATE] = new Spell(SPELL_INCINERATE,"Incinerate","spell_fire_burnout","Deals "+VALUE_INCINERATE+" damages to the target.",0,0,TARGET_ENEMY,0);
			ALLSPELLS[SPELL_IMMOLATE] = new Spell(SPELL_IMMOLATE,"Immolate","spell_fire_immolation","Deals "+VALUE_IMMOLATE+" damages every turn during "+DURATION_IMMOLATE+" turns.",0,DURATION_IMMOLATE,TARGET_ENEMY,BUFF_DURATION);
			ALLSPELLS[SPELL_CONFLAGRATE] = new Spell(SPELL_CONFLAGRATE,"Conflagrate","spell_fire_fireball","Deals "+VALUE_CONFLAGRATE+" damages and gives three charges of Backdraft.",6,0,TARGET_ENEMY,0);
			ALLSPELLS[SPELL_RAINOFFIRE] = new Spell(SPELL_RAINOFFIRE,"Rain of Fire","spell_shadow_rainoffire","Deals "+VALUE_RAINOFFIRE+" damages to all enemies.",0,0,TARGET_ALL_ENEMIES,0);
			ALLSPELLS[SPELL_CHAOSBOLT] = new Spell(SPELL_CHAOSBOLT,"Soul Fire","spell_fire_fireball02","Deals "+VALUE_SOULFIRE+" damages to the target.",10,0,TARGET_ENEMY,BUFF_DURATION);
			ALLSPELLS[SPELL_SHADOWFURY] = new Spell(SPELL_SHADOWFURY,"Shadowfury","spell_shadow_shadowfury","Deals "+VALUE_SHADOWFURY+" damages and stuns all weak enemies for 1 turn.",7,1,TARGET_ALL_ENEMIES,BUFF_DURATION);
			ALLSPELLS[SPELL_SHADOWBURN] = new Spell(SPELL_SHADOWBURN,"Shadowburn","spell_shadow_scourgebuild","Deals "+VALUE_SHADOWBURN+" damages. Only usable if the target has less than 25% life left.",6,0,TARGET_ENEMY,0);
			ALLSPELLS[SPELL_INFERNAL] = new Spell(SPELL_INFERNAL,"Infernal","spell_shadow_summoninfernal","Summons an Infernal that attack the target for "+VALUE_INFERNAL+" damage every turn during "+DURATION_INFERNAL+" turns.",30,DURATION_INFERNAL,TARGET_ENEMY,BUFF_DURATION);
			// Destruction Warlock Effects
			ALLSPELLS[SPELL_BUFF_BACKDRAFT] = new Spell(SPELL_BUFF_BACKDRAFT,"Backdraft","ability_warlock_backdraft","Your next Incinerate inflicts "+VALUE_BACKDRAFT+" more damages.",0,3,TARGET_SELF,BUFF_STACK);
			ALLSPELLS[SPELL_BUFF_EMBER] = new Spell(SPELL_BUFF_EMBER,"Burning Embers","ability_warlock_burningembers","Having five Burning Embers allows to cast a Chaos Bolt.",0,0,TARGET_SELF,BUFF_STACK);
			
			// Demonology Warlock Spells
			ALLSPELLS[SPELL_SHADOWBOLT] = new Spell(SPELL_SHADOWBOLT,"Shadow Bolt","spell_shadow_shadowbolt","Deals 25 damages to the target.",0,0,TARGET_ENEMY,0);
			ALLSPELLS[SPELL_DOOM] = new Spell(SPELL_DOOM,"Doom","spell_shadow_auraofdarkness","Deals 20 damages every two turns during 6 turns. Only one target.",0,6,TARGET_ENEMY,BUFF_DURATION);
			ALLSPELLS[SPELL_SHADOWFLAME] = new Spell(SPELL_SHADOWFLAME,"Shadowflame","ability_warlock_shadowflame","Deals 15 damages every turn during 3 turns.",8,3,TARGET_ENEMY,BUFF_DURATION);
			ALLSPELLS[SPELL_METAMORPHOSIS] = new Spell(SPELL_METAMORPHOSIS,"Metamorphosis","spell_shadow_demonform","Increases damage dealt by 30% for 4 turns.",12,5,TARGET_SELF,BUFF_DURATION);
			
			return ALLSPELLS;
		}
			
		public function Datas()
		{
		}
		
		// Proc Chances
		public static const CHANCE_FROSTSTRIKE_KILLINGMACHINE:Number = 0.50;
		public static const CHANCE_FROSTBOLT_FINGEROFFROST:Number = 0.30;
		public static const CHANCE_FROSTBOLT_BRAINFREEZE:Number = 0.15;
		public static const CHANCE_BLIZZARD_FINGEROFFROST:Number = 0.10;
		public static const CHANCE_FROZENORB_FINGEROFFROST:Number = 0.10;
		
		// Morchok Values
		public static const VALUE_ATTACK_MORCHOK:int = 60;
		public static const VALUE_ATTACK_KOHCROM:int = 40;
		public static const VALUE_STOMP:int = 50;
		public static const VALUE_BLACKBLOOD:int = 5;
		
		// DK Blood Values
		public static const VALUE_HEARTSTRIKE:int = 10;
		public static const VALUE_BONESHIELD:int = 30;
		public static const DURATION_BONESHIELD:int = 3;
		public static const VALUE_DEATHSTRIKE:int = 10;
		public static const VALUE_DEATHSTRIKE_HEAL:int = 20;
		public static const VALUE_DEATHANDDECAY:int = 5;
		public static const DURATION_DEATHANDDECAY:int = 3;
		public static const VALUE_BLOODBOIL:int = 10;
		
		// Mage Frost Values
		public static const VALUE_FROSTBOLT:int = 20;
		public static const VALUE_ICELANCE:int = 15;
		public static const VALUE_ICELANCE_FOF:int = 45;
		public static const VALUE_FROSTFIREBOLT:int = 20;
		public static const VALUE_FROSTFIREBOLT_BF:int = 50;
		public static const VALUE_FROSTFIREBOLT_BF_FOF:int = 100;
		public static const VALUE_BLIZZARD:int = 10;
		public static const VALUE_FROZENORB:int = 3;
		public static const DURATION_FROZENORB:int = 3;
		public static const VALUE_FROSTBOMB:int = 10;
		public static const DURATION_FROSTBOMB:int = 3;
		public static const VALUE_ICYVEINS:int = 10;
		public static const DURATION_ICYVEINS:int = 6;
		public static const VALUE_WATERELEMENTAL:int = 15;
		public static const DURATION_WATERELEMENTAL:int = 10;
		
		// Priest Disc Values
		public static const VALUE_PENANCE:int = 50;
		public static const VALUE_POWERSHIELD:int = 30;
		public static const VALUE_PRAYEROFHEALING:int = 30;
		public static const VALUE_ARCHANGEL:int = 40;
		public static const DURATION_ARCHANGEL:int = 4;
		public static const VALUE_PAINSUP:int = 50;
		public static const DURATION_PAINSUP:int = 3;
		public static const VALUE_POWERBARRIER:int = 30;
		public static const DURATION_POWERBARRIER:int = 2;
		
		// Rogue Combat Values
		public static const VALUE_SINISTERSTRIKE:int = 15;
		public static const VALUE_EVISCERATE:int = 15;
		
		// Warlock Affliction Values
		public static const VALUE_MALEFICGRASP:int = 15;
		public static const VALUE_MALEFICGRASPBONUS:int = 5;
		public static const VALUE_UNSTABLEAFFLICTION:int = 12;
		public static const DURATION_UNSTABLEAFFLICTION:int = 6;
		public static const DURATION_FEAR:int = 3;
		public static const VALUE_AGONY:int = 8;
		public static const DURATION_AGONY:int = 8;
		
		// Warlock Destruction Values
		public static const VALUE_INCINERATE:int = 20;
		public static const VALUE_BACKDRAFT:int = 10;
		public static const VALUE_IMMOLATE:int = 10;
		public static const DURATION_IMMOLATE:int = 6;
		public static const VALUE_CONFLAGRATE:int = 40;
		public static const VALUE_RAINOFFIRE:int = 10;
		public static const VALUE_SOULFIRE:int = 100;
		public static const VALUE_SHADOWFURY:int = 5;
		public static const VALUE_SHADOWBURN:int = 60;
		public static const VALUE_INFERNAL:int = 15;
		public static const DURATION_INFERNAL:int = 10;
	}
}